package com.itestor.iptv.modules.common.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.itestor.iptv.global.GlobalConstant;
import com.itestor.iptv.global.exception.WebApplicationException;
import com.itestor.iptv.global.utils.LoggerUtils;
import com.itestor.iptv.modules.common.service.GroupManageService;
import com.itestor.iptv.modules.common.utils.CommonConstant;
import com.itestor.iptv.modules.common.vo.GroupManageOBJ;


public class GroupManageAddAction extends Action {

	/**
	 * Logger for this class.
	 */
	private static final Logger logger = Logger.getLogger(GroupManageAddAction.class);

	/**
	 * UserService.
	 */
	private GroupManageService groupManageService;
	
	/**
	 * @param mapping struts mapping
	 * @param request request
	 * @param form action form
	 * @param response response
	 * @return action forward
	 * @throws Exception any exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String groupName = request.getParameter("groupName");

		GroupManageOBJ group = new GroupManageOBJ();
		group.setGroupName(groupName);
		
		request.setAttribute(CommonConstant.REQUEST_ATTR_GROUP, group);

		LoggerUtils.logActionInfo("Add the Group - groupName: " + groupName, logger, request);
		if (StringUtils.isEmpty(groupName) || StringUtils.isEmpty(groupName)) {
			throw new WebApplicationException("global.error.submit", GlobalConstant.PROPERTIES_BUNDLE);
		}

		if (null != groupManageService.get(groupName)) {
			throw new WebApplicationException("common.group.error.existed", CommonConstant.PROPERTIES_BUNDLE);
		}

		groupManageService.add(group);

		return mapping.findForward(GlobalConstant.FORWARD_SUCCESS);
	}

    public void setGroupManageService(GroupManageService pGroupManageService) {
        groupManageService = pGroupManageService;
    }

}
